#include "Visitor.h"

void ElementA::Accept(Visitor* pV)
{
	cout << "elementA: accept\n";
	pV->visitA(this);
}

void ElementA::doo()
{
	cout << "doo, doo\n";
}

void ElementB::Accept(Visitor* pV)
{
	cout << "elementB: accept\n";
	pV->visitB(this);
}

void ElementB::doit()
{
	cout << "doit, dito\n";
}

void Visitor1::visitA(ElementA* pA)
{
	cout<< "vistor1:visitA\n";
	pA->doo();
}

void Visitor1::visitB(ElementB* pB)
{
	cout<< "vistor1:visitB\n";
	pB->doit();
}

